Three-dimensional (3D) television has been a technology trend in recent years that intends to bring viewers sensational viewing experience. Various technologies have been developed to enable 3D viewing. The multi-view video is a key technology for 3DTV application among others. The traditional video is a two-dimensional (2D) medium that only provides viewers a single view of a scene from the perspective of the camera. However, the multi-view video is capable of offering arbitrary viewpoints of dynamic scenes and provides viewers the sensation of realism. 3D video formats may also include depth maps associated with corresponding texture pictures. The depth maps also have to be coded to rendering three-dimensional view or multi-view.
Various techniques to improve the coding efficiency of 3D video coding have been disclosed in the field. There are also development activities to standardize the coding techniques. For example, a working group, ISO/IEC JTC1/SC29/WG11 within ISO (International Organization for Standardization) is developing an HEVC (High Efficiency Video Coding) based 3D video coding standard (named 3D-HEVC). In 3D-HEVC, a technique named motion parameter inheritance (MPI) has been developed (e.g., Gerhard Tech, et al., “3D-HEVC Draft Text 2”, Joint Collaborative Team on 3D Video Coding Extension Development of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, 6th Meeting: Geneva, CH, 25 Oct.-1 Nov. 2013, Document: JCT3V-F1001) to allow depth maps to inherit motion information from texture pictures. The basic idea behind the MPI mode is that the motion characteristics of the video signal and its associated depth map should be similar, since both correspond to projections of the same scenery from the same viewpoint at the same time instant. In order to enable efficient encoding of the depth map data, the MPI mode is used to allow the depth map data to inherit the coding unit (CU) and prediction unit (PU) partitions and corresponding motion parameters from the corresponding video signal. The motion vectors of the video signal according to HEVC use quarter-sample accuracy. On the other hand, the motion vectors of the depth maps use full-sample accuracy. Therefore, in the inheritance process, the motion vectors of the video signal are quantized to nearest full-sample positions, which can be implemented by a right-shift-by-2 operation. The decision regarding whether to inherit motion information from the video signal or to use own motion information can be made adaptively for each block of the depth map.
The MPI mode can be used in any level of the hierarchical coding-tree block of the depth map. If the MPI mode is indicated at a higher level of the depth map coding tree, the depth map data in this higher level unit can inherit the CU/PU subdivision as well as the corresponding motion data from the video signal. In a more recent development within Joint Collaborative Team on 3D Video Coding Extension, sub-PU (sub-prediction unit) level MPI has been disclosed (Ying Chen, et al., “CE2: Sub-PU based MPI”, Joint Collaborative Team on 3D Video Coding Extension Development of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, 7th Meeting: San Jose, US, 11-17 Jan. 2014, Document: JCT3V-G0119). With the sub-PU level MPI merge candidate, for each sub-PU within current depth PU, the motion parameters of the co-located texture block covering the middle position of current sub-PU are inherited (with a right shift by 2 of the motion vectors) for current sub-PU.
As stated above, the sub-PU MPI derives motion parameters of each sub-PU from the motion parameters of the co-located texture block (reference block) in the same access unit. One set of temporary motion parameters are stored and updated during sub-PU MPI process. For each sub-PU, if motion parameters of the reference block for the current sub-PU are available, temporary motion parameters are updated with the motion parameters of the reference block. Otherwise, if the reference block has no available motion parameters, the temporary motion parameters are copied to the current sub-PU. This process is called the motion parameter hole filling process.
The current sub-PU motion hole filling process uses temporary motion parameters for a sub-PU when the corresponding reference block has no available motion parameter (motion hole). FIG. 1 illustrates an example of motion hole filling according to an existing approach. In this example, the current depth PU (110) is partitioned into 16 sub-PUs. For each sub-PU, the motion parameters of the co-located texture block (120) covering the middle position of each sub-PU are inherited if the motion parameters of the co-located texture block exist. If the motion parameters of the co-located texture block are not available, the co-located texture block has a motion hole. There are two motion holes (block 2 and block 12 as highlighted in filled patterns) in the co-located blocks. If the sub-PUs are processed in a raster scan order as shown in reference 130, the motion hole can be filled by the last available MPI before the motion hole. Accordingly, the motion parameters for sub-PU 2 can be filed using the motion parameters from sub-PU 1, and the motion parameters for sub-PU 12 can be filed using the motion parameters from sub-PU 11. As shown in FIG. 1, to fill the motion hole, the sub-PU motion hole filling process needs to identify the last sub-PU position that has available motion parameters before the motion hole. Therefore, the motion parameters used to fill a motion hole are dependent on the sub-PU processing order, which is not friendly to parallel processing.